﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HopeBus.Model;

namespace HopeBus.Business
{
    class AdmViagem
    {
        private ModeloDoSistemaContainer repositorioDoSistema;

        private ModeloDoSistemaContainer Repositorio
        {
            get
            {
                if (repositorioDoSistema == null)
                {
                    repositorioDoSistema = new ModeloDoSistemaContainer();
                    return repositorioDoSistema;
                }
                return repositorioDoSistema;
            }
        }

        public bool AdicionaViagem(int idCidOrigem, int idCidDest, double valorTrecho)
        {
            Viagem viagem = new Viagem();
            viagem.Cidade.Add(Repositorio.CidadeSet.Find(idCidOrigem));
            viagem.Cidade.Add(Repositorio.CidadeSet.Find(idCidDest));
            viagem.Origem = idCidOrigem;
            viagem.Destino = idCidDest;
            viagem.Valor = valorTrecho;

            Repositorio.ViagemSet.Add(viagem);
            Repositorio.SaveChanges();
            return true;
        }
        public List<Cidade> ListaOrigens()
        {
            List<Cidade> origens = new List<Cidade>();
            foreach(Viagem viagem in Repositorio.ViagemSet)
            {
                origens.Add(Repositorio.CidadeSet.Find(viagem.Origem));
            }
            return origens;
        }
        public List<Viagem> ListaViagem(int idOrigem)
        {
            return Repositorio.ViagemSet.Where(viagem => viagem.Origem.Equals(idOrigem)).Select(viagem => viagem).ToList();
        }

        public Viagem BuscaViagem(int id)
        {
            return Repositorio.ViagemSet.Find(id);
        }
        public Viagem BuscaViagem(int idOrigem, int idDestino)
        {
            return Repositorio.ViagemSet.Single(viagem => viagem.Origem.Equals(idOrigem) && viagem.Destino.Equals(idDestino));
        }

        
    }
}
